home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dbase / softc103.zip / SOFTC.H < prev   
Text File  |  1989-05-09  |  9KB  |  310 lines

  1. /*************************************************
  2.  **                                                                                            **
  3.  **        SoftC.h                                   **
  4.  **                                             **
  5.  **                    SoftC common toolkit header                    **
  6.  **                                                                                            **
  7.  **                    Copyright (C) 1988, 1989 by                 **
  8.  **                                Kim Schumann                                    **
  9.  **                                16820 3rd St NE                                **
  10.  **                                Ham Lake, MN 55304                        **
  11.  **                                (612) 434-6968                                **
  12.  **                                                                                            **
  13.  **                            All rights reserved.                        **
  14.  **                        Proprietary information.                    **
  15.  **        Use requires license from Kim Schumann,        **
  16.  **                    or an authorized distributor.                **
  17.  *************************************************/
  18.  
  19.  
  20.  
  21. /**********
  22.  *
  23.  *    Function Return Codes
  24.  *
  25.  **********/
  26.  
  27.  
  28.  
  29.  
  30. #define SC_FILENGTH        8            /* WARNING - file length is incorrect */
  31. #define SC_MEMOFLD        7            /* WARNING - memo fields not supported */
  32. #define SC_FLDROUND        6            /* WARNING - numeric field rounded */
  33. #define SC_FLDTRUNC        5            /* WARNING - data field truncated */
  34. #define SC_NOFIND            4            /* WARNING - could not find key in index file */
  35. #define SC_END                3            /* WARNING - no more keys */
  36. #define SC_EMPTY            2            /* WARNING - file is empty */
  37. #define SC_DELREC            1            /* WARNING - record read is marked deleted */
  38. #define SC_SUCCESS        0            /* successful function return code */
  39. #define SC_WRTFAIL        -1        /* ERROR - file write failure */
  40. #define SC_RDFAIL            -2        /* ERROR - file read failure */
  41. #define SC_MEMERR            -3        /* ERROR - memory allocation error */
  42. #define SC_BADFLD            -4        /* ERROR - bad user specified field description */
  43. #define SC_NODBF            -5        /* ERROR - file not in .DBF format */
  44. #define SC_SKFAIL            -6        /* ERROR - file pointer reposition failed */
  45. #define SC_NOFILE            -7        /* ERROR - file not found */
  46. #define SC_FILBAD            -8        /* ERROR - file corrupted */
  47. #define SC_BADEXPR        -9        /* ERROR - bad user specified key expression */
  48. #define SC_NONDX            -10        /* ERROR - file not in .NDX format */
  49. #define SC_NOHNDL            -11        /* ERROR - no handles available */
  50. #define SC_NOPGS            -12        /* ERROR - no index pages loaded */
  51. #define SC_BADPG            -13        /* ERROR - index page was not loaded */
  52. #define SC_CLOSFAIL        -14        /* ERROR - file close failure */
  53. #define SC_BADCMD            -15        /* ERROR - invalid command */
  54. #define SC_BADHNDL        -16        /* ERROR - invalid handle number */
  55. #define SC_BADFNAME        -17        /* ERROR - invalid filename */
  56. #define SC_BADDATE        -18        /* ERROR - invalid date */
  57. #define SC_BADTIME        -19        /* ERROR - invalid time */
  58. #define SC_NODBT            -20        /* ERROR - file not in .DBT format */
  59. #define SC_DBFVERS        -21        /* ERROR - invalid dBaseIII version */
  60. #define SC_DBFHLEN        -22        /* ERROR - file header length error */
  61. #define SC_DBFDATE        -23        /* ERROR - last file change date in error */
  62. #define SC_NULLPARM        -24        /* ERROR - parameter address NULL */
  63. #define SC_BADKEYT        -25        /* ERROR - invalid key type */
  64. #define SC_KEYLEN            -26        /* ERROR - invalid key length */
  65. #define SC_ITEMLEN        -27        /* ERROR - item length incorrect */
  66. #define SC_BADROOT        -28        /* ERROR - invalid root page */
  67. #define SC_MAXKEYS        -29        /* ERROR - bad maximum number of keys per page */
  68.  
  69. #define SC_MAXWARN    8
  70. #define SC_MAXERR        -29
  71.  
  72.  
  73.  
  74.  
  75. /**********
  76.  *
  77.  *    Common SoftC Prototypes
  78.  *
  79.  **********/
  80.  
  81.  
  82.  
  83.  
  84. signed short int scinit( signed char );
  85. signed short int scterm( void );
  86. signed char *scvers( void );
  87.  
  88.  
  89.  
  90.  
  91. /**********
  92.  *
  93.  *    Error Handling Prototypes
  94.  *
  95.  **********/
  96.  
  97.  
  98.  
  99.  
  100. void sceclr( void );
  101. signed char *scemsg( void );
  102.  
  103.  
  104.  
  105. /**********
  106.  *
  107.  *    dBase III Defines
  108.  *
  109.  **********/
  110.  
  111.  
  112.  
  113.  
  114. /* scrput definitions */
  115. #define SC_UPDATE 1                                    /* update current record */
  116. #define SC_ADD 2                                        /* add new record */
  117.  
  118. /* scrcopy & scrclear definitions */
  119. #define SC_INPUT 1                                    /* input buffer */
  120. #define SC_OUTPUT 2                                    /* output buffer */
  121.  
  122. /* sckfind definitions */
  123. #define SC_FIRST 1                                    /* find first key */
  124. #define SC_EXACT 2                                    /* find exact key (uses record number) */
  125.  
  126.  
  127.  
  128.  
  129. /**********
  130.  *
  131.  *    dBase III Type Definitions
  132.  *
  133.  **********/
  134.  
  135.  
  136.  
  137.  
  138. typedef struct {    /* database field description */
  139.     signed char name[11];    /* field name */
  140.     signed char type;                /* field type
  141.                                                      * 'c' or 'C' - character
  142.                                                      * 'd' or 'D' - date
  143.                                                      * 'l' or 'L' - logical
  144.                                                      *                            't' or 'T' - true
  145.                                                      *                            'f' or 'F' - false
  146.                                                      *                            'y' or 'Y' - yes
  147.                                                      *                            'n' or 'N' - no
  148.                                                      *                            '?'                 - uninitialized
  149.                                                      * 'n' or 'N' - numeric */
  150.     unsigned char len;            /* field width */
  151.     unsigned char decpl;        /* decimal count */
  152. } SC_FIELD;
  153.  
  154.  
  155.  
  156.  
  157. /**********
  158.  *
  159.  *    dBase III .DBF File Manipulator Prototypes
  160.  *
  161.  **********/
  162.  
  163.  
  164.  
  165.  
  166. signed short int scdclose( signed char );
  167. signed short int scdcreate( signed char *, signed char, SC_FIELD * );
  168. signed short int scdinfo( signed char, signed char * );
  169. signed short int scdopen( signed char *, signed char * );
  170. signed short int scdsize( signed char, signed long int * );
  171.  
  172.  
  173.  
  174.  
  175. /**********
  176.  *
  177.  *    dBase III .DBF Field Manipulator Prototypes
  178.  *
  179.  **********/
  180.  
  181.  
  182.  
  183.  
  184. signed short int scdfget( signed char, signed char, void * );
  185. signed short int scdfgets( signed char, signed char, char * );
  186. signed short int scdfinfo( signed char, signed char *, SC_FIELD * );
  187. signed short int scdfnam2no( signed char, signed char *, signed char * );
  188. signed short int scdfput( signed char, signed char, void * );
  189. signed short int scdfputs( signed char, signed char, char * );
  190.  
  191.  
  192.  
  193.  
  194. /**********
  195.  *
  196.  *    dBase III .DBF Record Manipulator Prototypes
  197.  *
  198.  **********/
  199.  
  200.  
  201.  
  202.  
  203. signed short int scdrclear( signed char, signed short );
  204. signed short int scdrcopy( signed char, signed short );
  205. signed short int scdrdel( signed char, signed long int );
  206. signed short int scdrget( signed char, signed long int );
  207. signed short int scdrinfo( signed char, signed short *, signed char *, void **, void ** );
  208. signed short int scdrput( signed char, signed short, signed long int * );
  209. signed short int scdrundel( signed char, signed long int );
  210.  
  211.  
  212.  
  213.  
  214. /**********
  215.  *
  216.  *    dBase III .NDX File Manipulators Prototypes
  217.  *
  218.  **********/
  219.  
  220.  
  221.  
  222.  
  223. signed short int sciclose( signed char );
  224. signed short int scicreate( signed char *, signed char, signed char *, signed char );
  225. signed short int sciexpr( signed char, signed char * );
  226. signed short int sciinfo( signed char, signed char *, signed char *, signed char *, signed short int * );
  227. signed short int sciopen( signed char *, signed char * );
  228.  
  229.  
  230.  
  231.  
  232. /**********
  233.  *
  234.  *    dBase III .NDX Key Manipulator Prototypes
  235.  *
  236.  **********/
  237.  
  238.  
  239.  
  240.  
  241. signed short int scikadd( signed char, signed char *, signed long int );
  242. signed short int scikcur( signed char, signed char *, signed long int * );
  243. signed short int scikdel( signed char, signed char *, signed long int );
  244. signed short int scikfirst( signed char, signed char *, signed long int * );
  245. signed short int scikfind( signed char, signed char, signed char *, signed long int * );
  246. signed short int sciklast( signed char, signed char *, signed long int * );
  247. signed short int scikmake( signed char, signed char, void ** );
  248. signed short int sciknext( signed char, signed char *, signed long int * );
  249. signed short int scikprev( signed char, signed char *, signed long int * );
  250.  
  251.  
  252.  
  253.  
  254. /**********
  255.  *
  256.  *    dBase III .NDX Page Manipulator Prototypes
  257.  *
  258.  **********/
  259.  
  260.  
  261.  
  262.  
  263. signed short int scipinfo( signed char, signed char *);
  264. signed short int scipnum( signed char, signed char * );
  265.  
  266.  
  267.  
  268.  
  269. /**********
  270.  *
  271.  *    Calendar Definitions
  272.  *
  273.  **********/
  274.  
  275.  
  276.  
  277.  
  278. /* sccdxlat */
  279. #define SC_2DBASE 1                    /* convert from "mm/dd/[yy]yy" to "yyyymmdd" */
  280. #define SC_2ASCII    8                    /* convert from "yyyymmdd" to "mm/dd/yy" */
  281. #define SC_2ASCIIL 10                /* convert from "yyyymmdd" to "mm/dd/yyyy" */
  282.  
  283.  
  284.  
  285.  
  286. /**********
  287.  *
  288.  *  Calendar Prototypes
  289.  *
  290.  **********/
  291.  
  292.  
  293.  
  294.  
  295. signed short int sccday( signed char, signed char * );
  296. signed short int sccddiff( signed char *, signed char *, signed long * );
  297. signed short int sccdn2s( signed int, signed int, signed int, signed char * );
  298. signed short int